package rules;
dialect  "mvel"
import com.example.droolstool.module.DrlMessageModule;
import com.example.droolstool.module.ExecutedDrlModule;
import java.util.List;
import java.lang.Boolean

global List<String> executedDrlIds;
global List<String> endNoteId;


        <#--<#list startEexcuteDrls as startEexcuteDrl>-->

            <#--rule ${startEexcuteDrl.ruleName}-->
            <#--lock-on-active true-->
            <#--when-->
            <#--$drlMessageModule :DrlMessageModule()-->
            <#--then-->
            <#--$drlMessageModule.executeDrlServer();-->
            <#--end-->

        <#--</#list>      -->
    rule "startExecuteDrl"
    lock-on-active true
      when
        <#--$drlMessageModule :DrlMessageModule(fromId == null || fromId.empty)-->
      then
        $drlMessageModule.executeDrlServer();
      end
<#--<#list drlMessageModules as drlRuleTemplateModule>-->

    <#--rule "${drlRuleTemplateModule.id}"-->
    <#--lock-on-active true-->
    <#--when-->
    <#--$drlMessageModule :DrlMessageModule(toCompareList(fromId,executedDrlIds), id == "${drlRuleTemplateModule.id}", !executed)-->
    <#--then-->
    <#--System.out.println("this is " + $drlMessageModule.toString() + ", the executedDrlIds is :" + executedDrlIds.toArray());-->
    <#--$drlMessageModule.executeDrlServer();-->
    <#--end-->

<#--</#list>-->
        <#---->
        <#list drlMessageModules as drlRuleTemplateModule>

    rule "${drlRuleTemplateModule.id}"
    lock-on-active true
    when

    then
    <#--System.out.println("this is " + $drlMessageModule.toString() + ", the executedDrlIds is :" + executedDrlIds.toArray());-->
    <#--$drlMessageModule.executeDrlServer();-->
    end

</#list>
 function Boolean toCompareList(List fromId, List targetId){

      if (fromId != null && targetId != null) {
        if (targetId.containsAll(fromId)) {
             return  true;
        }
      }
        return false;
  }


<#--<#list ruleNames as ruleName>-->
    <#--rule ${ruleName}-->
    <#--lock-on-active true-->
      <#--when-->
        <#--$drlMessageModule :DrlMessageModule( fromId memberOf executedDrlIds )-->
      <#--then-->
        <#--$drlMessageModule.executeDrlServer();-->
      <#--end-->

<#--</#list>-->
